<script>
    function MadeCat(name, age) {
        // 查看this.__proto__,说说this指向了谁
        this.name = name;
        this.age = age;
    }
    var cat = new MadeCat('小白', 2);
    cat.__proto__ === MadeCat.prototype;


    // 手动实现上面的步骤,new关键字就是做了以下这些事情
    function MadeCat2(name, age) {
        // 1. 创建临时对象obj
        var obj = new Object();
        // 2. 绑定临时对象obj的原型对象为MadeCat2的原型对象
        obj.__proto__ = MadeCat2.prototype;
        // 3. 把传入的name和age赋给obj
        obj.name = name;
        obj.age = age;
        // 4. 返回临时对象obj
        return obj;
    }
    // 调用MadeCat2得到新的对象,对比上面的例子,谈谈new关键字都起了什么作用,不使用new来创建对象行不行
    var cat2 = MadeCat2('小黑', 1);
    cat2.__proto__ === MadeCat2.prototype;
</script>